package com.xyy.saas.payment.merchant.core.dto;

import com.alibaba.fastjson.JSONObject;
import com.xyy.saas.payment.cores.enums.FBankPowerIdEnum;
import lombok.Data;
import lombok.extern.log4j.Log4j;

@Data
@Log4j
public class OpenPayDto {
    // 开通类型
    private String openPayChannel;
    // 业务侧ID
    private String businessId;
    // 业务线
    private String businessIdType;
    // 商户号
    private String merchantNo;
    // 商户侧id
    private String custMerchantNo;
    // 日志流水号
    private String clientSerialNo;
    // 功能ID
    private String powerId;
    // 支付功能所收费率
    private String rate;
    // 经营类项目码
    private String mchntType;
    // 商户简称
    private String mchntShortName;
    // 标准商户类别码 ，银联支付宝必填
    private String mcc;
    // 当支付功能为公众号和小程序时，此字段必填
    private String subAppid;
    // 小程序名称
    private String appletName;

    /**
     * 组装JSON请求参数
     * @return
     */
    public String getJSONStringParam() {
        JSONObject object = new JSONObject();
        object.put("merchant_no", getMerchantNo());
        object.put("cust_merchant_no", getCustMerchantNo());
        object.put("client_serial_no", getClientSerialNo());
        object.put("power_id", getPowerId());
        object.put("rate", getRate());
        object.put("mchnt_type", getMchntType());
        object.put("mchnt_short_name", getMchntShortName());
        object.put("mcc", getMcc());
        object.put("sub_appid", getSubAppid());

        if(FBankPowerIdEnum.WX_OFFICIAL.getPowerId().equals(getPowerId())) {
            object.put("public_name", getAppletName());
        }
        else {
            object.put("applet_name", getAppletName());
        }

        return object.toJSONString();
    }
}
